package com.ruoyi.project.payment.order.mapper;

import com.ruoyi.project.payment.order.domain.Order;

import java.util.List;

/**
 * 支付订单Mapper接口
 *
 * @author shixiangwen
 * @date 2019-12-04
 */
public interface OrderMapper {

    /**
     * 查询支付订单
     *
     * @param id 支付订单ID
     * @return 支付订单
     */
    public Order selectOrderById(Long id);

    /**
     * 查询支付订单列表
     *
     * @param order 支付订单
     * @return 支付订单集合
     */
    public List<Order> selectOrderList(Order order);

    /**
     * 新增支付订单
     *
     * @param order 支付订单
     * @return 结果
     */
    public int insertOrder(Order order);

    /**
     * 修改支付订单
     *
     * @param order 支付订单
     * @return 结果
     */
    public int updateOrder(Order order);

    /**
     * 删除支付订单
     *
     * @param id 支付订单ID
     * @return 结果
     */
    public int deleteOrderById(Long id);

    /**
     * 批量删除支付订单
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteOrderByIds(String[] ids);

    /**
     * 获取订单数
     *
     * @param date
     * @param status
     * @return
     */
    public int getOrderCount(String app, String date, int status);

    /**
     * @param app
     * @param paytype
     * @param excludePaytype
     * @param date
     * @param status
     * @return
     */
    public Integer getOrderAmount(String app, String paytype, String excludePaytype, String date, int status);


    /**
     * @param date
     * @param status
     * @return
     */
    public List<Order> getOrderList(String date, int status);


    /**
     * @param startDate
     * @param endDate
     * @param status
     * @return
     */
    public List<Order> getOrderListMonth(String startDate, String endDate, int status);


    /**
     * @param app
     * @param paytype
     * @param excludePaytype
     * @param startDate
     * @param endDate
     * @param status
     * @return
     */
    public Integer getOrderMonthAmount(String app, String paytype, String excludePaytype, String startDate, String endDate, int status);
}
